﻿Public Class NhanVien

    Private nvBUS As NhanVienBUS
    Private nvDTO As NhanVienDTO
    Private cm As CurrencyManager
    Private flagIsUp As Boolean

    Private Sub NhanVien_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        LoadData()
    End Sub

    Private Sub LoadData()
        dgvNhanVien.ClearSelection()
        nvBUS = New NhanVienBUS
        Dim nvList = New List(Of NhanVienDTO)
        nvList = nvBUS.GetData()
        cm = Me.BindingContext(nvList)
        txtmaNV.DataBindings.Add("Text", nvList, "MaNhanVien")
        txttenNV.DataBindings.Add("Text", nvList, "TenNhanVien")
        txtdcNhanVien.DataBindings.Add("Text", nvList, "DiaChiNhanVien")
        txtdtNhanVien.DataBindings.Add("Text", nvList, "DienThoaiNhanVien")
        dgvNhanVien.DataSource = nvList
    End Sub

    Private Sub btnThem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThem.Click
        flagIsUp = True
        LockTextbox(True)
        LockButton(False)
        ClearTextbox()
        dgvNhanVien.Enabled = False
        txtmaNV.Focus()
    End Sub

    Private Sub ClearTextbox()
        txtmaNV.Text = ""
        txttenNV.Text = ""
        txtdcNhanVien.Text = ""
        txtdtNhanVien.Text = ""

    End Sub

    Private Function TestInfo() As Boolean
        TestInfo = True
        If Trim(txtmaNV.Text) = "" Then
            TestInfo = False
            MsgBox("Mã Nhân Viên không được bỏ trống!", MsgBoxStyle.Exclamation, "Thông báo lỗi")
            txtmaNV.Focus()
            Exit Function
        ElseIf Trim(txttenNV.Text) = "" Then
            TestInfo = False
            MsgBox("Tên Nhân Viên không được bỏ trống!", MsgBoxStyle.Exclamation, "Thông báo lỗi")
            txttenNV.Focus()
            Exit Function
        ElseIf Trim(txtdcNhanVien.Text) = "" Then
            TestInfo = False
            MsgBox("Địa Chỉ Nhân Viên không được bỏ trống!", MsgBoxStyle.Exclamation, "Thông báo lỗi")
            txtdcNhanVien.Focus()
            Exit Function
        ElseIf Trim(txtdtNhanVien.Text) = "" Then
            TestInfo = False
            MsgBox("Điện thoại Nhân Viên không được bỏ trống!", MsgBoxStyle.Exclamation, "Thông báo lỗi")
            txtdtNhanVien.Focus()
            Exit Function
        End If
    End Function

    Private Sub btnLuu_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLuu.Click

        ' khai bao bien
        Dim manv As String = txtmaNV.Text
        Dim tennv As String = txttenNV.Text
        Dim diachi As String = txtdcNhanVien.Text
        Dim dienthoai As String = txtdtNhanVien.Text

        '---------------------------------------------
        If TestInfo() Then
            nvDTO = New NhanVienDTO(manv, tennv, diachi, dienthoai)
            nvBUS = New NhanVienBUS()
            nvBUS.CapNhat(nvDTO, flagIsUp)
            ClearBinding()
            LoadData()
            LockTextbox(False)
            LockButton(True)
            dgvNhanVien.Enabled = True
            MsgBox("Đã cập nhật dữ liệu thành công", MsgBoxStyle.Information, "Thông báo")
        End If
    End Sub

    Private Sub LockButton(ByVal dt As Boolean)
        btnThem.Enabled = dt
        btnSua.Enabled = dt
        btnXoa.Enabled = dt
        btnLuu.Enabled = Not dt
        btnThoat.Enabled = dt
    End Sub

    Private Sub ClearBinding()
        txtmaNV.DataBindings.Clear()
        txttenNV.DataBindings.Clear()
        txtdcNhanVien.DataBindings.Clear()
        txtdtNhanVien.DataBindings.Clear()

    End Sub

    Private Sub LockTextbox(ByVal f As Boolean)
        txtmaNV.Enabled = f
        txttenNV.Enabled = f
        txtdcNhanVien.Enabled = f
        txtdtNhanVien.Enabled = f
        If f = False Then
            txtmaNV.BackColor = Color.LemonChiffon
            txttenNV.BackColor = Color.LemonChiffon
            txtdcNhanVien.BackColor = Color.LemonChiffon
            txtdtNhanVien.BackColor = Color.LemonChiffon
        Else
            txtmaNV.BackColor = Color.White
            txttenNV.BackColor = Color.White
            txtdcNhanVien.BackColor = Color.White
            txtdtNhanVien.BackColor = Color.White
        End If
    End Sub

    Private Sub btnXoa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnXoa.Click
        Dim manv As String = txtmaNV.Text
        Dim qs = MsgBox("Bạn chắc chắn muốn xóa tất cả thông tin về:" _
                        & vbCrLf & vbCrLf & " - Nhân viên ID: " & txtmaNV.Text _
                        & vbCrLf & vbCrLf & " - Tên: " & txttenNV.Text & vbCrLf & vbCrLf & "_Đia Chỉ Nhan Vien: " & txtdcNhanVien.Text & vbCrLf & vbCrLf & " - Điện Thoại Nhân Viên: " & txtdtNhanVien.Text, _
                        vbInformation + vbYesNo, "Thông báo")
        If qs = vbYes Then
            nvDTO = New NhanVienDTO(manv)
            nvBUS = New NhanVienBUS()
            nvBUS.XoaNhanVien(nvDTO)
            ClearBinding()
            LoadData()
            LockTextbox(False)
            LockButton(True)
            dgvNhanVien.Enabled = True
            MsgBox("Dữ liệu đã xóa thành công", vbInformation, "Thông báo")
        Else
            MsgBox("Đã hủy thao tác xóa!", vbExclamation, "Thông báo")
        End If

    End Sub

    Private Sub btnThoat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThoat.Click
        Me.Close()
    End Sub
   

    Private Sub btnSua_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSua.Click
        flagIsUp = False
        LockTextbox(True)
        LockButton(False)
        dgvNhanVien.Enabled = False
        txtmaNV.Focus()
    End Sub

    Private Sub btnHuy_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHuy.Click
        ClearBinding()
        LoadData()
        LockTextbox(False)
        LockButton(True)
        dgvNhanVien.Enabled = True
    End Sub

  
End Class